<#include "*/component/Tags.ftl"/>
<@Title/>
<@ClassAnnotation>
@Service
</@ClassAnnotation>
public class ${clazz.name} implements ${clazz.parent.name} {

${'\t'}private ${entity.entityName}Assembler ${entity.objectName}Assembler = ${entity.entityName}Assembler.instance;

${'\t'}@Autowired
${'\t'}private ${entity.entityName}Dao ${entity.objectName}Dao;

${'\t'}@Override
${'\t'}public ListVo<${entity.entityName}VO> page(${entity.entityName}Param param, PageQuery pageQuery) {
${'\t'}${'\t'}<#if entity.containsString></#if>param.initKeyword();
${'\t'}${'\t'}ListVo<${entity.entityName}CDO> page = ${entity.objectName}Dao.listWithCount(param, param.getOrder(), pageQuery.getPage(), pageQuery.getPageSize(), ${entity.entityName}CDO.class);
${'\t'}${'\t'}return ${entity.objectName}Assembler.vo(page);
${'\t'}}

${'\t'}@Override
${'\t'}public List<${entity.entityName}VO> list(${entity.entityName}Param param) {
${'\t'}${'\t'}List<${entity.entityName}CDO> list = ${entity.objectName}Dao.list(param, param.getOrder(), ${entity.entityName}CDO.class);
${'\t'}${'\t'}return ${entity.objectName}Assembler.vo(list);
${'\t'}}

${'\t'}@Override
${'\t'}public ${entity.entityName}VO profile(Long id) {
${'\t'}${'\t'}${entity.entityName}CDO profile = ${entity.objectName}Dao.getOne(new ${entity.entityName}Entity.IDCondition(id), ${entity.entityName}CDO.class);
${'\t'}${'\t'}return ${entity.objectName}Assembler.vo(profile);
${'\t'}}

}
